#include<bits/stdc++.h>
using namespace std;
int kmp[1010],to[1010][26],dp[1010],dp1[1010];
string s,t;
inline void mx(int &x,int y){
	x=max(x,y);
}
signed main(){
	freopen("neck.in","r",stdin);
	freopen("neck.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>s>>t;
	int n=s.size(),m=t.size();
	s=" "+s,t=" "+t;
	int j=0;
	for(int i=2;i<=m;i++){
		while(j>0&&t[j+1]!=t[i])
			j=kmp[j];
		if(t[j+1]==t[i]) j++;
		kmp[i]=j;
	}
	for(int i=0;i<m;i++){
		if(i>0){
			for(int j=0;j<26;j++)
				to[i][j]=to[kmp[i]][j];
		}
		to[i][t[i+1]-'a']=i+1;
	}
	memset(dp,128,sizeof(dp)),dp[0]=0;
	for(int i=1;i<=n;i++){
		memset(dp1,128,sizeof(128));
		for(int j=0;j<m;j++)
			mx(dp1[to[j][s[i]-'a']],dp[j]+1);
		for(int j=0;j<m;j++)
			mx(dp[j],dp1[j]);
	}
	int ans=0;
	for(int i=0;i<m;i++)
		mx(ans,dp[i]);
	cout<<ans;
	return 0;
}